const path = require('path')

// ########### 🚀🚀 1. path.basename() ###########

console.info('__filename', __filename) // C:\Leslie\NodeJs\1-NodeJs-Core-Module\codes\10-path.js
/**
 * 获取路径中基础名称:
 * << 返回路径当中的最后一个部分 >>
 * << 第二个参数表示扩展名,如果说没有设置则返回完整的文件名称带后缀 >>
 * << 第二个参数作为后缀时, 如果没有在当前路径中没有被匹配到, 那么就会忽略 >>
 * << 处理目录路径的时候,如果说结尾处有路径分割符, 则也会被忽略掉 >>
 */
console.info(path.basename(__filename)) // 10-path.js
console.info(path.basename(__filename, '.js')) // 10-path
console.info(path.basename(__filename, '.css')) // 10-path.js
console.info(path.basename('/a/b/c')) // c
console.info(path.basename('/a/b/c/')) // c => 如果末尾是分割符,忽略掉最后一个分割符

// ########### 🚀🚀 2. path.dirname() 获取<<路径>>目录名 ###########
/**
 * 获取<<路径>>目录名
 * << 返回路径中最后一个部分的上一层目录所在路径 >>
 */
console.info(path.dirname(__filename)) // C:\Leslie\NodeJs\1-NodeJs-Core-Module\codes>
console.info(path.dirname('/a/b/c')) // /a/b
console.info(path.dirname('/a/b/c/')) // /a/b

// ########### 🚀🚀 3. path.ext() 获取路径的扩展名 ###########
/**
 * << 返回 path路径中相应文件的后缀名 >>
 * << 匹配的是最后一个点到最后结尾的内容 >>
 */
console.info(path.extname(__filename)) // .js
console.info(path.extname('/a/b')) // 空
console.info(path.extname('/a/b/index.html.js.css')) // .css
console.info(path.extname('/a/b/index.html.js.')) // . 后面是 空
